//
//  GBInterMaster_CommForSystem.m
//  NetworkTest
//
//  Created by xiaosi on 16/8/4.
//  Copyright © 2016年 xiaosi. All rights reserved.
//

#import "GBInterMaster_CommForSystem.h"

@implementation GBInterMaster_CommForSystem

/*
 *用户注册（获取验证码）
 *@param msgNumber：消息序号。
 *@param account：用户账号（邮箱或者手机号）。
 */
+ (void) requestUserRegisterVegister:(int)msgNumber withAccount:(NSString*)account{
    NSDictionary* userData = @{@"msgNumber":[NSNumber numberWithInt:msgNumber],@"cmdType":[NSNumber numberWithInt:PTCP_V10_VALUE_CMD_TYPE_APP_SYSTEM],@"cmd":[NSNumber numberWithInt:LOGIC_APP_CMD_USERREGISTERVEGISTER],@"userAccount":account};
    [[NSNotificationCenter defaultCenter] postNotificationName:NOTIFICATION_REQUEST object:nil userInfo:userData];
}

/*
 *用户注册
 *@param msgNumber：消息序号。
 *@param password：用户密码
 *@param checkCode：手机或者邮箱接收到的验证码（6位）
 */
+ (void) requestUserRegister:(int)msgNumber withPassword:(NSString*)password withCheckCode:(NSString*)checkCode{
    NSDictionary* userData = @{@"msgNumber":[NSNumber numberWithInt:msgNumber],@"cmdType":[NSNumber numberWithInt:PTCP_V10_VALUE_CMD_TYPE_APP_SYSTEM],@"cmd":[NSNumber numberWithInt:LOGIC_APP_CMD_USERREGISTER],@"userPwd":password,@"checkCode":checkCode};
    [[NSNotificationCenter defaultCenter] postNotificationName:NOTIFICATION_REQUEST object:nil userInfo:userData];
}

/*
 *忘记密码（获取校验码）
 *@param msgNumber：消息序号。
 *@param account：用户账号（邮箱或者手机号）。
 */
+ (void) requestUserForgetPwdVegister:(int)msgNumber withAccount:(NSString*)account{
    NSDictionary* userData = @{@"msgNumber":[NSNumber numberWithInt:msgNumber],@"cmdType":[NSNumber numberWithInt:PTCP_V10_VALUE_CMD_TYPE_APP_SYSTEM],@"cmd":[NSNumber numberWithInt:LOGIC_APP_CMD_RESETPWDVEGISTER],@"userAccount":account};
    [[NSNotificationCenter defaultCenter] postNotificationName:NOTIFICATION_REQUEST object:nil userInfo:userData];
}

/*
 *忘记密码（验证校验码）
 *@param msgNumber：消息序号。
 *@param checkCode：邮箱或者手机接收到的6位验证码。
 */
+ (void) requestUserForgetPwdVerify:(int)msgNumber withCheckCode:(NSString*)checkCode{
    NSDictionary* userData = @{@"msgNumber":[NSNumber numberWithInt:msgNumber],@"cmdType":[NSNumber numberWithInt:PTCP_V10_VALUE_CMD_TYPE_APP_SYSTEM],@"cmd":[NSNumber numberWithInt:LOGIC_APP_CMD_RESETPWD],@"checkCode":checkCode};
    [[NSNotificationCenter defaultCenter] postNotificationName:NOTIFICATION_REQUEST object:nil userInfo:userData];
}

/*
 *忘记密码（设置新密码）
 *@param msgNumber：消息序号。
 *@param password：用户新密码。
 */
+ (void) requestUserForgetPwdNewPwd:(int)msgNumber withPassword:(NSString*)password{
    NSDictionary* userData = @{@"msgNumber":[NSNumber numberWithInt:msgNumber],@"cmdType":[NSNumber numberWithInt:PTCP_V10_VALUE_CMD_TYPE_APP_SYSTEM],@"cmd":[NSNumber numberWithInt:LOGIC_APP_CMD_RESETPWDNEW],@"userPwd":password};
    [[NSNotificationCenter defaultCenter] postNotificationName:NOTIFICATION_REQUEST object:nil userInfo:userData];
}

/*
 *用户登录
 *@param msgNumber：消息序号。
 *@param account：用户账号（邮箱或者手机号）。
 *@param password：用户密码。
 *@param isCheck: 0x00:不需要验证码，checkCode字段提供nil，0x01:需要验证码，checkCode必须要提供6个字的验证码。
 *@param checkCode：验证码，登录失败三次后服务器会返给app6个字节的验证码，此时app应该显示验证码以及供用户输入验证码的文本框。
 */
+ (void) requestUserLogin:(int)msgNumber withAccount:(NSString*)account withPassword:(NSString*)password withCheckCode:(NSString*)checkCode{
    NSDictionary* userData = @{@"msgNumber":[NSNumber numberWithInt:msgNumber],@"cmdType":[NSNumber numberWithInt:PTCP_V10_VALUE_CMD_TYPE_APP_SYSTEM],@"cmd":[NSNumber numberWithInt:LOGIC_APP_CMD_LOGIN],@"userAccount":account,@"userPwd":password,@"checkCode":checkCode};
    [[NSNotificationCenter defaultCenter] postNotificationName:NOTIFICATION_REQUEST object:nil userInfo:userData];
}

/*
 *修改密码
 *@param msgNumber：消息序号。
 *@param oldPassword：用户当前密码。
 *@param newPassword：用户新密码。
 */
+ (void) requestUserUpdatePwd:(int)msgNumber withOldPassword:(NSString*)oldPassword withNewPassword:(NSString*)newPassword{
    NSDictionary* userData = @{@"msgNumber":[NSNumber numberWithInt:msgNumber],@"cmdType":[NSNumber numberWithInt:PTCP_V10_VALUE_CMD_TYPE_APP_SYSTEM],@"cmd":[NSNumber numberWithInt:LOGIC_APP_CMD_UPDATEPWD],@"oldPassword":oldPassword,@"newPassword":newPassword};
    [[NSNotificationCenter defaultCenter] postNotificationName:NOTIFICATION_REQUEST object:nil userInfo:userData];
}

/*
 *所有者认证（绑定设备）
 *@param msgNumber：消息序号。
 *@param deviceKey：设备wifi模块交互时wifi给的设备32字节key。
 */
+ (void) requestAcceptPossessor:(int)msgNumber withDeviceKey:(NSString*)deviceKey{
    NSDictionary* userData = @{@"msgNumber":[NSNumber numberWithInt:msgNumber],@"cmdType":[NSNumber numberWithInt:PTCP_V10_VALUE_CMD_TYPE_APP_SYSTEM],@"cmd":[NSNumber numberWithInt:LOGIC_APP_CMD_ACCEPTPOSSESSOR],@"deviceKey":deviceKey};
    [[NSNotificationCenter defaultCenter] postNotificationName:NOTIFICATION_REQUEST object:nil userInfo:userData];
}

/*
 *修改设备名字
 *@param msgNumber：消息序号。
 *@param deviceAccount：设备16位序列号。
 *@param deviceName：修改的名字。
 */
+ (void) requestDeviceRename:(int)msgNumber withDeviceAccount:(NSString*)deviceAccount withDeviceName:(NSString*)deviceName{
    NSDictionary* userData = @{@"msgNumber":[NSNumber numberWithInt:msgNumber],@"cmdType":[NSNumber numberWithInt:PTCP_V10_VALUE_CMD_TYPE_APP_SYSTEM],@"cmd":[NSNumber numberWithInt:LOGIC_APP_CMD_UPDATEDEVICEINFO],@"deviceAccount":deviceAccount,@"deviceName":deviceName};
    [[NSNotificationCenter defaultCenter] postNotificationName:NOTIFICATION_REQUEST object:nil userInfo:userData];
    NSLog(@"requestDeviceRename");
}


/*
 *获取设备列表
 *@param msgNumber：消息序号。
 */
+ (void) requestDeviceList:(int)msgNumber{
    NSDictionary* userData = @{@"msgNumber":[NSNumber numberWithInt:msgNumber],@"cmdType":[NSNumber numberWithInt:PTCP_V10_VALUE_CMD_TYPE_APP_SYSTEM],@"cmd":[NSNumber numberWithInt:LOGIC_APP_CMD_GETDEVICELIS]};
    [[NSNotificationCenter defaultCenter] postNotificationName:NOTIFICATION_REQUEST object:nil userInfo:userData];
}

/*
 *获取设备使用者列表
 *@param msgNumber：消息序号。
 *@param deviceAccount：设备16位序列号。
 */
+ (void) requestDeviceUserList:(int)msgNumber withDeviceAccount:(NSString*)deviceAccount{
    NSDictionary* userData = @{@"msgNumber":[NSNumber numberWithInt:msgNumber],@"cmdType":[NSNumber numberWithInt:PTCP_V10_VALUE_CMD_TYPE_APP_SYSTEM],@"cmd":[NSNumber numberWithInt:LOGIC_APP_CMD_DEVICEUSERLIST],@"deviceAccount":deviceAccount};
    [[NSNotificationCenter defaultCenter] postNotificationName:NOTIFICATION_REQUEST object:nil userInfo:userData];
}

/*
 *解除绑定
 *@param msgNumber：消息序号。
 *@param deviceAccount：设备16位序列号。 当此操作为所有者时，同时此设备的使用者也将被解除
 */
+ (void) requestRelieveDevice:(int)msgNumber withDeviceAccount:(NSString*)deviceAccount{
    NSDictionary* userData = @{@"msgNumber":[NSNumber numberWithInt:msgNumber],@"cmdType":[NSNumber numberWithInt:PTCP_V10_VALUE_CMD_TYPE_APP_SYSTEM],@"cmd":[NSNumber numberWithInt:LOGIC_APP_CMD_REMOVEDEVICE],@"deviceAccount":deviceAccount};
    [[NSNotificationCenter defaultCenter] postNotificationName:NOTIFICATION_REQUEST object:nil userInfo:userData];
}

/*
 *添加使用者
 *@param msgNumber：消息序号。
 *@param deviceAccount：设备16位序列号。
 */
+ (void) requestAddDeviceUser:(int)msgNumber withDeviceAccount:(NSString*)deviceAccount withUserAccount:(NSString*)userAccount withUserAlias:(NSString*)userAlias{
    NSDictionary* userData = @{@"msgNumber":[NSNumber numberWithInt:msgNumber],@"cmdType":[NSNumber numberWithInt:PTCP_V10_VALUE_CMD_TYPE_APP_SYSTEM],@"cmd":[NSNumber numberWithInt:LOGIC_APP_CMD_ADDDEVICEUSER],@"deviceAccount":deviceAccount,@"userAccount":userAccount,@"userAlias":userAlias};
    [[NSNotificationCenter defaultCenter] postNotificationName:NOTIFICATION_REQUEST object:nil userInfo:userData];
}

/*
 *删除使用者
 *@param msgNumber：消息序号。
 *@param deviceAccount：设备16位序列号。
 *@param userAccount：使用者的账号。
 */
+ (void) requestDeleteDeviceUser:(int)msgNumber withDeviceAccount:(NSString*)deviceAccount withUserAccount:(NSString*)userAccount{
    NSDictionary* userData = @{@"msgNumber":[NSNumber numberWithInt:msgNumber],@"cmdType":[NSNumber numberWithInt:PTCP_V10_VALUE_CMD_TYPE_APP_SYSTEM],@"cmd":[NSNumber numberWithInt:LOGIC_APP_CMD_DELETEDEVICEUSER],@"deviceAccount":deviceAccount,@"userAccount":userAccount};
    [[NSNotificationCenter defaultCenter] postNotificationName:NOTIFICATION_REQUEST object:nil userInfo:userData];
}

/*
 *编辑使用者
 *@param msgNumber：消息序号。
 *@param deviceAccount：设备16位序列号。
 *@param userAccount：使用者的账号。
 *@param userAlias：使用者别名。
 */
+ (void) requestEditDeviceUser:(int)msgNumber withDeviceAccount:(NSString*)deviceAccount withUserAccount:(NSString*)userAccount withUserAlias:(NSString*)userAlias{
    NSDictionary* userData = @{@"msgNumber":[NSNumber numberWithInt:msgNumber],@"cmdType":[NSNumber numberWithInt:PTCP_V10_VALUE_CMD_TYPE_APP_SYSTEM],@"cmd":[NSNumber numberWithInt:LOGIC_APP_CMD_UPDATEDEVICEUSER],@"deviceAccount":deviceAccount,@"userAccount":userAccount,@"userAlias":userAlias};
    [[NSNotificationCenter defaultCenter] postNotificationName:NOTIFICATION_REQUEST object:nil userInfo:userData];
}


/*
 *所有者转移
 *@param msgNumber：消息序号。
 *@param deviceAccount：设备16位序列号。
 *@param userAccount：转移到此账号。
 */
+ (void) requestDeviceOwnChange:(int)msgNumber withDeviceAccount:(NSString*)deviceAccount withUserAccount:(NSString*)userAccount{
    NSDictionary* userData = @{@"msgNumber":[NSNumber numberWithInt:msgNumber],@"cmdType":[NSNumber numberWithInt:PTCP_V10_VALUE_CMD_TYPE_APP_SYSTEM],@"cmd":[NSNumber numberWithInt:LOGIC_APP_CMD_DEVICEOWNCHANGE],@"deviceAccount":deviceAccount,@"userAccount":userAccount};
    [[NSNotificationCenter defaultCenter] postNotificationName:NOTIFICATION_REQUEST object:nil userInfo:userData];
}


/*
 *获取设备配置
 *@param msgNumber：消息序号。
 *@param deviceAccount：设备16位序列号。
 */
+ (void) requestDeviceConfig:(int)msgNumber withDeviceAccount:(NSString*)deviceAccount{
    NSDictionary* userData = @{@"msgNumber":[NSNumber numberWithInt:msgNumber],@"cmdType":[NSNumber numberWithInt:PTCP_V10_VALUE_CMD_TYPE_APP_SYSTEM],@"cmd":[NSNumber numberWithInt:LOGIC_APP_CMD_GETDEVICECONFIG],@"deviceAccount":deviceAccount};

    [[NSNotificationCenter defaultCenter] postNotificationName:NOTIFICATION_REQUEST object:nil userInfo:userData];
//    [[NSNotificationCenter defaultCenter]postNotificationName:NOTIFICATION_REQUEST object:userData];
}

/*
 *消息同步设置
 *@param msgNumber：消息序号。
 *@param deviceAccount：设备16位序列号。
 *@param msgMod：消息同步模式 1：同步 其他：不同步
 */
+ (void) requestMsgReceiveMode:(int)msgNumber withDeviceAccount:(NSString*)deviceAccount withMsgMode:(int)msgMod{
    NSDictionary* userData = @{@"msgNumber":[NSNumber numberWithInt:msgNumber],@"cmdType":[NSNumber numberWithInt:PTCP_V10_VALUE_CMD_TYPE_APP_SYSTEM],@"cmd":[NSNumber numberWithInt:LOGIC_APP_CMD_MSGRECEIVEMODEL],@"deviceAccount":deviceAccount,@"msgMod":[NSNumber numberWithInt:msgMod]};

    [[NSNotificationCenter defaultCenter] postNotificationName:NOTIFICATION_REQUEST object:nil userInfo:userData];
}
@end
